import { TrendCardData } from '../types/trendCard';
import { ProductCardData } from '../types/productCard';

/**
 * 验证趋势图数据是否有效
 * @param data 趋势图数据
 * @returns 是否有效
 */
export function isValidTrendCardData(data: TrendCardData | null): boolean {
  return !!(
    data && 
    data.dataLines && 
    data.dataLines.length > 0 && 
    data.dataLines[0].data && 
    data.dataLines[0].data.length > 0
  );
}

/**
 * 验证产品卡片数据是否有效
 * @param data 产品卡片数据
 * @returns 是否有效
 */
export function isValidProductCardData(data: ProductCardData | null): boolean {
  if (!data) return false;
  
  // 基础必填字段检查
  if (!data.fund_name || !data.fund_code) {
    return false;
  }
  
  // 检查数据结构完整性
  if (!data.yield_history || !Array.isArray(data.yield_history)) {
    return false;
  }
  
  return true;
}

/**
 * 验证产品卡片数据是否完整（包括收益率等可选字段）
 * @param data 产品卡片数据
 * @returns 是否完整
 */
export function isCompleteProductCardData(data: ProductCardData | null): boolean {
  if (!isValidProductCardData(data)) return false;
  
  // 检查收益率相关字段
  return !!(data!.yield && data!.yield_name);
}

/**
 * 验证基金名称是否有效
 * @param cardContent 基金名称
 * @returns 是否有效
 */
export function isValidCardContent(cardContent: string | undefined | null): boolean {
  return typeof cardContent === 'string' && cardContent.trim() !== '';
}

/**
 * 通用的卡片数据验证函数
 * @param data 卡片数据
 * @param type 卡片类型
 * @returns 是否有效
 */
export function isValidCardData(data: any, type: 'trend' | 'product'): boolean {
  if (!data) return false;
  
  switch (type) {
    case 'trend':
      return isValidTrendCardData(data);
    case 'product':
      return isValidProductCardData(data);
    default:
      return false;
  }
} 